<?php
include ('../../datos/general.php');
include ('../../datos/conexion.php');
include ('../../datos/storeprocedure.php');
validarSession('Coordinador');
$conn=obtenerConexion();
?>
	<script>
	var idEditarProyeccion='';
	var idAgregar='';
	var idEditar='';
	var arregloGrupos = new Array();
	var arregloGruposEditar = new Array();
	grupo=function()
	{
		this.idGrupo=0;
		this.codigo= "";
		this.numeroGrupo= "";
		this.cantidadEstudiantes= "";
		this.idPersona= "";
		this.nombreProfesor="";
		this.tipoCurso='';
		this.porcentajeImparticion='';
		this.horasTeoria='';
		this.horasPractica='';
		this.horasProyecto='';
		this.numLabs='';
		this.numGiras='';
		this.horasGira='';
		this.carga='';
		
		this.llenarDatos=function(idGrupo,codigo, numeroGrupo, cantidadEstudiantes, idPersona,nombreProfesor,tipoCurso,porcentajeImparticion,horasTeoria,
								  horasPractica,horasProyecto,numLabs,numGiras,horasGira,carga){
			this.idGrupo= idGrupo;
			this.codigo= codigo;
			this.numeroGrupo= numeroGrupo;
			this.cantidadEstudiantes= cantidadEstudiantes;
			this.idPersona= idPersona;
			this.nombreProfesor = nombreProfesor;
			this.tipoCurso=tipoCurso;
			this.porcentajeImparticion=porcentajeImparticion;
			this.horasTeoria=horasTeoria;
			this.horasPractica=horasPractica;
			this.horasProyecto=horasProyecto;
			this.numLabs=numLabs;
			this.numGiras=numGiras;
			this.horasGira=horasGira;
			this.carga=carga;
		}
		
		this.obtenerDatos=function(){
			return (this.idGrupo+","+this.codigo+","+this.numeroGrupo+","+this.cantidadEstudiantes+","+this.idPersona+","+this.nombreProfesor+","+
					this.tipoCurso+","+this.porcentajeImparticion+","+this.horasTeoria+","+this.horasPractica+","+this.horasProyecto+","+
					this.numLabs+","+this.numGiras+","+this.horasGira+","+this.carga);
			}
			
		this.modificarInfo=function(codigo, numeroGrupo, cantidadEstudiantes, idPersona,nombreProfesor,tipoCurso,porcentajeImparticion,horasTeoria,
								    horasPractica,horasProyecto,numLabs,numGiras,horasGira){
			this.codigo= codigo;
			this.numeroGrupo= numeroGrupo;
			this.cantidadEstudiantes= cantidadEstudiantes;
			this.idPersona= idPersona;
			this.nombreProfesor= nombreProfesor;
			this.tipoCurso=tipoCurso;
			this.porcentajeImparticion=porcentajeImparticion;
			this.horasTeoria=horasTeoria;
			this.horasPractica=horasPractica;
			this.horasProyecto=horasProyecto;
			this.numLabs=numLabs;
			this.numGiras=numGiras;
			this.horasGira=horasGira;
			}
			
		this.compararArreglo = function(arreglo){
			if(this.obtenerDatos()!=arreglo.obtenerDatos())
				return false;
			else return true;
			}
	}
	
	function obtenerParametros(){
		var tipo='<?php echo $_POST['tipo'];?>';
		arreglo='';
		if(tipo=='editar'){
			idEditarProyeccion='<?php echo $_POST['idProyeccionEditar'];?>';
			document.getElementById('nombreProyeccion').value='<?php echo $_POST['nombreProyeccion'];?>';
			semestre='<?php echo $_POST['semestre'];?>';
			if(semestre=='I')
				document.getElementById('semestreProyeccion').selectedIndex=0;
			else document.getElementById('semestreProyeccion').selectedIndex=1;
			document.getElementById('annoProyeccion').value='<?php echo $_POST['anno'];?>';
			parametros="tipo="+encodeURIComponent('obtenerGrupos')+"&idProyeccionCursos="+encodeURIComponent(idEditarProyeccion);
			cargar ("", "", "Coordinador/proyeccionCursos/proyeccionFunciones.php", "POST", parametros, true, "");
			}
	}	
	
	function listaCursos(){
			$(".listaCursos").flexigrid({
				url : 'Coordinador/proyeccionCursos/proyeccionCargarTablaCursos.php',
				dataType : 'xml',
				colModel : [{ display : 'Código', name : 'codigoCurso', width : 40, sortable : true, align : 'left', process: procMe}, 
							{ display : 'Curso', name : 'nombreCurso', width : 130, sortable : true, align : 'left', process: procMe},
							{ display : 'Plan', name : 'nombrePlan', width : 160, sortable : true, align : 'left', process: procMe}, 
							{ display : 'Carrera', name : 'nombreCarrera', width : 160, sortable : true, align : 'left', process: procMe}],
				searchitems : [	{display : 'Plan', name : 'nombrePlan'},
								{display : 'Carrera', name : 'nombreCarrera'},
								{display : 'Curso', name : 'nombreCurso'},
								{display : 'Código', name : 'codigoCurso'}],
				sortname : "nombreCarrera",
				sortorder : "asc",
				usepager : true,
				title : 'Cursos registrados',
				useRp : true,
				rp : 10,
				showTableToggleBtn : false,
				width : 540,
				height : 220,
				singleSelect: true
			});
		}
		
	function procMe(celDiv,id)
			{
				$(celDiv).click
				(
					function ()
						{
							document.location="#final";
							idAgregar=id;
							document.getElementById('codigoCurso').innerHTML=idAgregar;
							cargarTablaGrupos();
						}
				);
			}

	function cursosProyectados(){
			$(".cursosProyectados").flexigrid({
				url : 'Coordinador/proyeccionCursos/cursoCargarTabla.php',
				dataType : 'xml',
				colModel : [{ display : 'Código curso', name : 'codigoCurso', width : 65, sortable : true, align : 'left', process:limpiar}, 
							{ display : '# grupo', name : 'numeroGrupo', width : 45, sortable : true, align : 'left', process:limpiar}, 
							{ display : '# Estudiantes', name : 'cantidadEstudiantes', width : 65, sortable : true, align : 'left', process:limpiar},
							{ display : 'Profesor', name : 'idProfesor', width : 160, sortable : true, align : 'left', process:limpiar},
							{ display : 'Tipo', name : 'tipoCurso', width : 140, sortable : true, align : 'left', process:limpiar},
							{ display : '% Impartición', name : 'porcentajeImparticion', width : 65, sortable : true, align : 'left', process:limpiar},
							{ display : 'H Teoría', name : 'horasTeoria', width : 65, sortable : true, align : 'left', process:limpiar},
							{ display : 'H Práctica', name : 'horasPractica', width : 65, sortable : true, align : 'left', process:limpiar},
							{ display : 'H Proyecto', name : 'horasProyecto', width : 65, sortable : true, align : 'left', process:limpiar},
							{ display : '# Labs', name : 'numLabs', width : 65, sortable : true, align : 'left', process:limpiar},
							{ display : '# Giras', name : 'numGiras', width : 65, sortable : true, align : 'left', process:limpiar},
							{ display : 'H/Gira', name : 'horasGira', width : 65, sortable : true, align : 'left', process:limpiar}],
				searchitems : [	{display : 'Carrera', name : 'numeroGrupo'},
								{display : 'Escuela', name : 'cantidadEstudiantes'}, 
								{display : 'Sede', name : 'listaProfesores'},
								{ display : 'Tipo Curso', name : 'tipoCurso'},
								{ display : 'Porcentaje Impartición', name : 'porcentajeImparticion'},
								{ display : 'Horas Teoría', name : 'horasTeoria'},
								{ display : 'Horas Práctica', name : 'horasPractica'},
								{ display : 'Horas Proyecto', name : 'horasProyecto'},
								{ display : 'Número Laboratorios', name : 'numLabs'},
								{ display : 'Número Giras', name : 'numGiras'},
								{ display : 'Horas por Gira', name : 'horasGira'}],
				buttons : [{name : 'Agregar', bclass : 'agregar', onpress : agregarGrupo},
						   {name : 'Eliminar', bclass : 'eliminar', onpress : eliminarGrupo},
						   {name : 'Editar', bclass : 'edit', onpress : editarGrupo}],
				sortname : "numeroGrupo",
				sortorder : "asc",
				usepager : false,
				title : 'Lista de grupos para el curso',
				useRp : true,
				rp : 10,
				showTableToggleBtn : false,
				width : 540,
				height : 290,
				singleSelect: true
			});
		}
	
	function  limpiar(celDiv,id)
			{
				$(celDiv).click
				(
					function ()
						{
							idEditar='';
							document.getElementById('numeroGrupo').value='';
							document.getElementById('cantidadEstudiantes').value='';
							document.getElementById('profesor').value='';
							document.getElementById('respuestaAgregarCurso').innerHTML="";
						}
				);
			}
	
	function editarGrupo(com, grid) {
		var items = $('.trSelected', grid);
			if(items.length>0){
				idEditar = items[0].id.substr(3);
				if(idEditar!=''){
					cargarProfesores();
					$("#divAgregar").show("slow");
					document.location="#final";
					document.getElementById("numeroGrupo").value = $('td[abbr="numeroGrupo"] >div', items).html();
					document.getElementById("cantidadEstudiantes").value = $('td[abbr="cantidadEstudiantes"] >div', items).html();
					document.getElementById("tipoCurso").value = $('td[abbr="tipoCurso"] >div', items).html();
					arregloAux = arregloGrupos[idEditar];
					document.getElementById("profesor").selectedIndex = arregloAux.idPersona;
					document.getElementById("porcentajeImparticion").value = $('td[abbr="porcentajeImparticion"] >div', items).html();
					document.getElementById("horasTeoria").value = $('td[abbr="horasTeoria"] >div', items).html();
					document.getElementById("horasPractica").value = $('td[abbr="horasPractica"] >div', items).html();
					document.getElementById("horasProyecto").value = $('td[abbr="horasProyecto"] >div', items).html();
					document.getElementById("numLabs").value = $('td[abbr="numLabs"] >div', items).html();
					document.getElementById("numGiras").value = $('td[abbr="numGiras"] >div', items).html();
					document.getElementById("horasGira").value = $('td[abbr="horasGira"] >div', items).html();
				}
				else alert('Selecciono un registro sin datos.');
			}
			else alert('Debe seleccionar un registro.');
		}
	
	function eliminarGrupo(com, grid) {
		var items = $('.trSelected', grid);
			if(items.length>0){
				idEliminar = items[0].id.substr(3);
				idEditar='';
				arregloGrupos.splice(idEliminar,1);
				cargarTablaGrupos();
			}
			else alert('Debe seleccionar un registro.');
		}
		
	function agregarGrupo(com, grid) {
		if(idAgregar!=''){
			$("#divAgregar").show("slow");
			idEditar='';
			cargarProfesores();
			document.getElementById('codigoCurso').innerHTML=idAgregar;
			document.location="#final";
		}
		else alert('Debe seleccionar un curso.');
		}
	
	function registrarGrupo(){
			var codigoCurso= document.getElementById('codigoCurso').innerHTML;
			var numeroGrupo = document.getElementById('numeroGrupo').value;
			var cantidadEstudiantes = document.getElementById('cantidadEstudiantes').value;
			var idProfesor = document.getElementById('profesor').value;
			var seleccion=document.getElementById("profesor");
			var index= seleccion.selectedIndex;
			var nombreProfesor= seleccion.options[index].text;
			seleccion=document.getElementById("tipoCurso");
			index= seleccion.selectedIndex;
			var tipoCurso = seleccion.options[index].text;
			var porcentajeImparticion = document.getElementById("porcentajeImparticion").value;
			var horasTeoria = document.getElementById("horasTeoria").value;
			var horasPractica = document.getElementById("horasPractica").value;
			var horasProyecto = document.getElementById("horasProyecto").value;
			var numLabs = document.getElementById("numLabs").value;
			var numGiras = document.getElementById("numGiras").value;
			var horasGira = document.getElementById("horasGira").value;
			if(numeroGrupo!='' && cantidadEstudiantes!='' && idProfesor!='' && idProfesor!='Limpio' && tipoCurso!='' && porcentajeImparticion!='' &&
			   horasTeoria!='' && horasPractica!='' && horasProyecto!='' && numLabs!='' && numGiras !='' && horasGira){
				   if(isNaN(numeroGrupo)==false && isNaN(cantidadEstudiantes)==false && isNaN(porcentajeImparticion)==false && isNaN(horasTeoria)==false && 
				      isNaN(horasPractica)==false && isNaN(horasProyecto)==false && isNaN(numLabs)==false && isNaN(numGiras)==false && isNaN(horasGira)==false){
						grupoNuevo = new grupo();
						if(idEditar==''){
							grupoNuevo.llenarDatos(arregloGrupos.length,codigoCurso,numeroGrupo,cantidadEstudiantes,idProfesor,nombreProfesor,tipoCurso,porcentajeImparticion,
											   horasTeoria,horasPractica,horasProyecto,numLabs,numGiras,horasGira,0);
							arregloGrupos.push(grupoNuevo);
							}
						else {
							grupoNuevo.llenarDatos(idEditar,codigoCurso,numeroGrupo,cantidadEstudiantes,idProfesor,nombreProfesor,tipoCurso,porcentajeImparticion,
											   horasTeoria,horasPractica,horasProyecto,numLabs,numGiras,horasGira,arregloGrupos[idEditar].carga);
							arregloGrupos[idEditar]=grupoNuevo;
							}
						cargarTablaGrupos();
						document.getElementById('numeroGrupo').value='';
						document.getElementById('cantidadEstudiantes').value='';
						document.getElementById('profesor').value='';
						document.getElementById('respuestaAgregarCurso').innerHTML="";
						document.getElementById("porcentajeImparticion").value='';
						document.getElementById("horasTeoria").value='';
						document.getElementById("horasPractica").value='';
						document.getElementById("horasProyecto").value='';
						document.getElementById("numLabs").value='';
						document.getElementById("numGiras").value='';
						document.getElementById("horasGira").value='';
						document.getElementById('tipoCurso').selectedIndex=0;
						}
					else document.getElementById('respuestaAgregarCurso').innerHTML="Hay datos que no son númericos.";
				}
			else document.getElementById('respuestaAgregarCurso').innerHTML="Hay datos sin completar.";
		}
	
	function cargarTablaGrupos(){
		var arregloEnviar= new Array();
		for(i=0;i<(arregloGrupos.length);i++){
			var grupoAux = arregloGrupos[i];
			if(grupoAux.codigo==idAgregar)
				arregloEnviar.push(new Array(grupoAux.obtenerDatos()));
			}
			parametros="arreglo="+encodeURIComponent(arregloEnviar);
			cargar ("respuestaAgregarCurso", "", "Coordinador/proyeccionCursos/cargarGrupos.php", "POST", parametros, true, "");
		}
	
	function cargarProfesores(){
		parametros="tipo="+encodeURIComponent("obtenerProfesores");
		cargar ("profesor", "", "Coordinador/proyeccionCursos/proyeccionFunciones.php", "POST", parametros, true, "");
		}
		
	function registrarCambios(){
		nombreProyeccion = document.getElementById('nombreProyeccion').value;
		semestreProyeccion = document.getElementById('semestreProyeccion').value;
		annoProyeccion = document.getElementById('annoProyeccion').value;
		var arregloEnviar= new Array();
		for(i=0;i<(arregloGrupos.length);i++){
			var grupoAux = arregloGrupos[i];
				arregloEnviar.push(new Array(grupoAux.obtenerDatos()));
			}
		if(nombreProyeccion!='' && semestreProyeccion!='' && annoProyeccion!='' && arregloEnviar.length>0){
			if(idEditarProyeccion==''){
				parametros="tipo="+encodeURIComponent("registrarDatos")+"&arreglo="+encodeURIComponent(arregloEnviar)+
						   "&nombreProyeccion="+encodeURIComponent(nombreProyeccion)+"&semestreProyeccion="+encodeURIComponent(semestreProyeccion)+
						   "&annoProyeccion="+encodeURIComponent(annoProyeccion);
				cargar ("respuestaRegistroBD", "", "Coordinador/proyeccionCursos/proyeccionFunciones.php", "POST", parametros, true, "");
			}
			else {
				arregloA=arregloGrupos;
				arregloB=arregloGruposEditar;
				if(compararArregloAuxiliar(arregloA,arregloB)){
					parametros="tipo="+encodeURIComponent("registrarEdicionSinArreglo")+"&idEditarProyeccion="+encodeURIComponent(idEditarProyeccion)+
							   "&nombreProyeccion="+encodeURIComponent(nombreProyeccion)+"&semestreProyeccion="+encodeURIComponent(semestreProyeccion)+
							   "&annoProyeccion="+encodeURIComponent(annoProyeccion);
					cargar ("respuestaRegistroBD", "", "Coordinador/proyeccionCursos/proyeccionFunciones.php", "POST", parametros, true, "");
				}
				else {
					parametros="tipo="+encodeURIComponent("registrarEdicionConArreglo")+"&idEditarProyeccion="+encodeURIComponent(idEditarProyeccion)+
							   "&arreglo="+encodeURIComponent(arregloEnviar)+"&nombreProyeccion="+encodeURIComponent(nombreProyeccion)+
							   "&semestreProyeccion="+encodeURIComponent(semestreProyeccion)+"&annoProyeccion="+encodeURIComponent(annoProyeccion);
					cargar ("respuestaRegistroBD", "", "Coordinador/proyeccionCursos/proyeccionFunciones.php", "POST", parametros, true, "");
					}
				}
		}
		else document.getElementById('respuestaRegistroBD').innerHTML="Hay datos sin completar.";
		}
		
		//Comparar si los arreglos de entrada son iguales, ambos son de tipo grupo.
		function compararArregloAuxiliar(arreglo1, arreglo2){
			if(arreglo1.length!=arreglo2.length)
				return false;
			else {
				for(i=0; i<arreglo1.length; i++){
					if(!arreglo1[i].compararArreglo(arreglo2[i])){
						return false;
						}
					}
				}
			return true;
			}
		
		cargarTablaGrupos();
		obtenerParametros();
	</script>

<table id="tablaContenedora">
	<tr>
    	<td  align="left">
        	<div>
            <table>
            	<tr>
                	<td align="right">
                    	Nombre de la proyección:
                    </td>
                    <td>
                    	<input type="text" id="nombreProyeccion"/>
                    </td>
                    <td style="color:#F00; vertical-align:top" align="left">*</td>
                </tr>
            	<tr>
                	<td align="right">
                    	Semestre:
                    </td>
                    <td align="right">
                    	<select id="semestreProyeccion" style="width: 155px;">
                        	<option value="I">I</option>
                            <option value="II">II</option>
                        </select>
                    </td>
                    <td style="color:#F00; vertical-align:top" align="left">*</td>
                </tr>
            	<tr>
                	<td align="right">
                    	Año:
                    </td>
                    <td>
                    	<input type="text" id="annoProyeccion"/>
                    </td>
                    <td style="color:#F00; vertical-align:top" align="left">*</td>
                </tr>
            </table>
            <div>
            <table>
            	<tr>
                	<td>
                    	<h3>Lista de cursos disponibles</h3>
           				<table class="listaCursos" style="display: none"></table>
		                <script>listaCursos();</script>
                    </td>
                </tr>
                <tr>
                	 <td valign="top">
                     	<h3>Lista de grupos agregados al curso seleccionado:</h3>
                    	<table class="cursosProyectados" style="display: none"></table>
		                <script>cursosProyectados();</script>    
                    </td>
                     <td valign="top">
                    	<br />
                        <br/>
                        <br/>                        
                    	<div id="divAgregar" style="-moz-border-radius: 10px;-webkit-border-radius: 10px; border: 1px solid #000000; display:none">
                    	<table >
                        	<tr>
                            	<td colspan="2">
                                	<h3>Agregar un grupo al curso</h3>
                                </td>
                            </tr>
                        	<tr>
                            	<td>
                                	Código Curso:
                                </td>
                            	<td id="codigoCurso"></td>
                            </tr>
                        	<tr>
                            	<td>
                                	Número Grupo:
                                </td>
                            	<td>
                                	<input type="text" id="numeroGrupo"/>
                                </td>
                            </tr>	
                        	<tr>
                            	<td>
                                	Cantidad estudiantes:
                                </td>
                            	<td>
                                	<input type="text" id="cantidadEstudiantes"/>
                                </td>
                            </tr>
                            <tr>
                            	<td>
                                	Tipo de curso:
                                </td>
                            	<td>
                                	<select id="tipoCurso" style="width: 155px;">
                                        <option value="E">Existente</option>
                                        <option value="I">Impartido anteriormente</option>
                                        <option value="N">Nuevo</option>
                                        <option value="P1">Paralelo 1</option>
                                        <option value="PN">Paralelo N</option>
                                    </select>
                                </td>
                            </tr>
                        	<tr>
                            	<td>
                                	Porcentaje impartición curso:
                                </td>
                            	<td>
                                	<input type="text" id="porcentajeImparticion"/>
                                </td>
                            </tr>
                        	<tr>
                            	<td>
                                	Horas teoría:
                                </td>
                            	<td>
                                	<input type="text" id="horasTeoria"/>
                                </td>
                            </tr>
                        	<tr>
                            	<td>
                                	Horas práctica:
                                </td>
                            	<td>
                                	<input type="text" id="horasPractica"/>
                                </td>
                            </tr>
                        	<tr>
                            	<td>
                                	Horas proyecto:
                                </td>
                            	<td>
                                	<input type="text" id="horasProyecto"/>
                                </td>
                            </tr>
                        	<tr>
                            	<td>
                                	Número laboratorios:
                                </td>
                            	<td>
                                	<input type="text" id="numLabs"/>
                                </td>
                            </tr>
                        	<tr>
                            	<td>
                                	Número giras:
                                </td>
                            	<td>
                                	<input type="text" id="numGiras"/>
                                </td>
                            </tr>
                        	<tr>
                            	<td>
                                	Horas por gira:
                                </td>
                            	<td>
                                	<input type="text" id="horasGira"/>
                                </td>
                            </tr>
                        	<tr>
                            	<td>
                                	Profesor:
                                </td>
                            	<td>
                                	<select name="idCampoListaCarreras" id="profesor"></select>
                                </td>
                            </tr>
                        	<tr>
                            	<td style="color:#F00" id="respuestaAgregarCurso">
                                	
                                </td>
                            	<td align="right">
                                <button onclick="$('#divAgregar').hide('slow');" class="boton">Ocultar</button>
                                	<button onclick="registrarGrupo()" class="boton">Registrar</button>
                                </td>
                            </tr>
                        </table>
                     	</div>
                        <a name="final"></a>
                    </td>
                </tr>
                            <tr>
                            	<td align="right">
                                	<button onclick="registrarCambios()" class="boton">Registrar</button>
                                </td>
                            </tr>
                              <tr align="right">
                            	<td style="color:#F00" id="respuestaRegistroBD"></td>
                            </tr>
            </table>
            </div> <!-- Div proyecciones cursos-->
            </div>
		</td><!-- columna contenedora -->
	</tr><!-- fila contenedora -->
</table><!-- Tabla contenedora -->